package com.hsnn.medstgmini.settlement.service;

import java.util.List;

import com.hsnn.medstgmini.settlement.model.SetPayment;
import com.hsnn.medstgmini.settlement.model.form.Payment;
import com.hsnn.medstgmini.sys.model.SysUser;
import com.hsnn.medstgmini.util.Pagination;

/**
 * @category 支付单
 * @author 蔡春龙
 * @date 2015年7月27日
 */
public interface PaymentManager {

	/**
	 * @category 查询支付单列表
	 * @date 2015年7月27日
	 * @param payment
	 * @param page
	 * @return
	 */
	Pagination getPaymentList(Payment payment, Pagination page);
	/**
	 * 
	 *@category 获取支付单查看列表数据
	 *@author 邱磊
	 *@date 2015年8月9日 下午3:25:15
	 *@param payment
	 *@param page
	 *@return
	 */
	Pagination getSubmitPaymentList(Pagination page);

	/**
	 * @category 保存支付单
	 * @date 2015年7月27日
	 * @param payment
	 */
	void savePayment(SetPayment payment, SysUser user);

	/**
	 * @category 查询未加入支付单的结算单
	 * @date 2015年7月27日
	 * @param payment
	 * @param page
	 * @return
	 */
	Pagination getNotAddSettlementList(Payment payment, Pagination page);

	/**
	 * @category 查询加入支付单的结算单
	 * @date 2015年7月27日
	 * @param payment
	 * @param page
	 * @return
	 */
	Pagination getPaymentDetailList(Payment payment, Pagination page);

	/**
	 * @category 添加支付明细
	 * @date 2015年7月27日
	 * @param payment
	 */
	void addPaymentDetail(List<Payment> paymentList, SysUser user);

	/**
	 * @category 删除支付单明细
	 * @date 2015年7月27日
	 * @param payment
	 */
	void deletePaymentDetail(List<Payment> paymentList, SysUser user);

	/**
	 * @category 提交支付单
	 * @date 2015年7月27日
	 * @param payment
	 */
	void submitPayment(List<Payment> paymentList, SysUser user);

	/**
	 * @category 获取根据配送企业分组确认支付列表数据（采购中心,没有卫生局）
	 * @author 邱磊
	 * @date 2015年7月27日 下午7:07:25
	 * @return
	 */
	public Pagination getConfirmPayByCompHospDataList(Pagination page);

	/**
	 * 
	 * @category 获取根据配送企业分组确认支付列表数据（采购中心,有卫生局）
	 * @author 邱磊
	 * @date 2015年7月27日 下午7:06:12
	 * @return
	 */
	public Pagination getConfirmPayByCompHealDataList(Pagination page);

	/**
	 * @category 查询支付明细列表
	 * @date 2015年7月27日
	 * @param payment
	 * @param page
	 * @return
	 */
	Pagination getSettlementDetailList(Payment payment, Pagination page);
	
	public Pagination getPaymentPayDetailList(Pagination page);
	
	/**
	 * @category 查询支付明细列表
	 * @date 2015年7月27日
	 * @param payment
	 * @param page
	 * @return
	 */
	Pagination getAddSettlementDetailList(Payment payment, Pagination page);
	
	/**
	 * 
	 *@category 确认支付操作（采购中心点击“确认支付”按钮）
	 *@author 邱磊
	 *@date 2015年7月28日 下午2:41:11
	 *@param page
	 *@return
	 */
	public Pagination confirmPay(Pagination page);

	/**
	 * @category 根据id查询支付单
	 * @date 2015年7月27日
	 * @param id
	 * @return
	 */
	SetPayment getPaymentById(String id);

	/**
	 * @category 删除支付单明细
	 * @date 2015年7月27日
	 * @param payment
	 */
	void deletePayment(List<Payment> paymentList, SysUser user);
	
	/**
	 * @category  更新支付单状态
	 * @author 韩守松
	 * @date   2015年7月29日
	 * @param  @param setPayment
	 * @param  @param user
	 * @param  @return
	 */
	boolean updatePaymentStatusById(SetPayment setPayment,SysUser user);
	
  /**
	 * @category 获取按配送企业分组的支付单数据【含核算中心】
	 * @author 应晓川
	 * @date 2015年7月29日09:20:33
	 * @param 
	 */
	Pagination getCompBySetCenterList(Pagination page);
	/**
	 * @category 获取按配核算中心分组的支付单数据【含核算中心】
	 * @author 应晓川
	 * @date 2015年7月29日09:20:33
	 * @param 
	 */
	Pagination getPaymentBySetCenterList(Pagination page);
	
	/**
	 * @category 获取按医疗机构分组的支付单数据【含核算中心】
	 * @author 应晓川
	 * @date 2015年7月29日09:20:33
	 * @param 
	 */
	Pagination getPaymentByHospList(Pagination page);
	
	/**
	 * @category 获取支付单明细分组的药品数据【含核算中心】
	 * @author 应晓川
	 * @date 2015年7月29日09:20:33
	 * @param 
	 */
	Pagination getSettletdetailinfoByHospList(Pagination page);
	
	/**
	 * @category 获取按配送企业分组的支付单数据【不含核算中心】
	 * @author 应晓川
	 * @date 2015年7月29日16:49:31
	 * @param 
	 */
	Pagination getPaymentByNoCompList(Pagination page);
	
	/**
	 * @category 获取医疗机构分组的支付单明细数据【不含核算中心】
	 * @author 应晓川
	 * @date   2015年7月29日17:41:55
	 * @param  
	 */
	Pagination getHospByNoCompList(Pagination page);
	Pagination getSetmenDetailList(Pagination page);

}
